java EE请求转发(转发和重定向)

java
Author

dd21

Published

December 5, 2022

请求转发和请求重定向的区别是: 请求转发只有一次请求,请求重定向有两次请求。 # 1、 请求转发 方法实现 将RequestFrowardServlet里的company的值转发给ResaultServlet展示
域对象:在一定范围内可以存值和取值 request域对象:在一次请求中可以存值和取值。

存值: request.setAttribute(String key, Object obj)
取值: Object obj = request.getAttribute(String key, Object obj)
删除值: request.removeAttRibute(String key)

RequestFrowardServlet

// 获取转发对象
RequestDispatcher  rd = request.getRequestDispatcher("/resault");
// 调用转发方法,实现转发效果
request.setAttribute("company","abc公司");
rd.forward(request, response);


ResaultServlet

// 处理响应中文乱码
response.setContentType("text/html;charset=utf-8");
// 获取并转换获取的company所对应的的值
String name = (String) request.getAttribute("company");
// 输出到页面
response.getWriter().write(name);

2、 请求重定向 方法实现

RequestFrowardServlet里的company的值转发给ResaultServlet展示
RequestFrowardServlet

// 重定向
response.sendRedirect("welcom");

ResaultServlet

// 处理响应中文乱码
response.setContentType("text/html;charset=utf-8");
// 获取转发过来的参数
String usr = request.getParameter("username");
String psd = request.getParameter("password");
// 打印参数
response.getWriter().write(usr+"<br>");
response.getWriter().write(psd+"<br>");